package com.shujia.day04;

public class Demo07StaticVar {
    static int value;
    static int data = 20;

    int var = 1;

    public static void main(String[] args) {
        /*
            TODO static 修饰成员变量
                1. 提供了一种全局的方式，可以在多个静态方法中进行调用变量
                2. 对于成员变量只能在成员方法中使用，不能在静态方法中使用
                3. 对于成员方法中，可以使用静态变量
                4. 对于成员变量使用static修饰，那么该变量为静态变量 -> 属于类的 -> 是所有对象共有的 ->
                        内存中的存储位置是在方法区(元空间中) -> jdk7之后存在堆空间中  -> 在全局有且仅有一个
         */
        Demo07StaticVar.value = 10;
        System.out.println(value);
        System.out.println(data);
        useVar();
//        var = 10;
//        Demo07StaticVar demo07StaticVar = new Demo07StaticVar();
//        demo07StaticVar.objectVar();
        new Demo07StaticVar().objectVar();


        Per per1 = new Per("刘亦菲", "美国");
        per1.show();
        Per per2 = new Per("朱茵", "中国");
        per2.show();
        per1.show(); // 现象






    }

    public static void useVar() {
//        var = 10;
        System.out.println("获取到Value:" + value);
        System.out.println("获取到data:" + data);
    }

    public void objectVar() {
        var = 10;
        data = 30;
        System.out.println("当前data:" + data);
        System.out.println("当前var:" + var);
    }

}


